package com.ruoyi.nongjt.service;

import java.util.List;
import com.ruoyi.nongjt.domain.PrinterAuth;
import org.springframework.stereotype.Service;

/**
 * 打印机认证Service接口
 * 
 * @author ruoyi
 * @date 2024-04-05
 */
@Service
public interface IPrinterAuthService
{
    /**
     * 新增打印机认证
     * 
     * @param printerAuth 打印机认证信息
     * @return 结果
     */
    public int insertPrinterAuth(PrinterAuth printerAuth);

    /**
     * 修改打印机认证
     * 
     * @param printerAuth 打印机认证信息
     * @return 结果
     */
    public int updatePrinterAuth(PrinterAuth printerAuth);

    /**
     * 查询打印机认证列表
     * 
     * @param printerAuth 打印机认证信息
     * @return 打印机认证集合
     */
    public List<PrinterAuth> selectPrinterAuthList(PrinterAuth printerAuth);

    /**
     * 通过用户ID查询打印机认证记录
     * 
     * @param userId 用户ID
     * @return 打印机认证列表
     */
    public List<PrinterAuth> selectPrinterAuthByUserId(Long userId);

    /**
     * 通过认证ID查询打印机认证
     * 
     * @param authId 认证ID
     * @return 打印机认证信息
     */
    public PrinterAuth selectPrinterAuthByAuthId(Long authId);

    /**
     * 通过序列号查询打印机认证
     * 
     * @param serialNumber 打印机序列号
     * @return 打印机认证信息
     */
    public PrinterAuth selectPrinterAuthBySerialNumber(String serialNumber);

    /**
     * 打印机认证
     * 
     * @param userId 用户ID
     * @param serialNumber 打印机序列号
     * @param authCode 认证码
     * @return 认证结果
     */
    public boolean printerAuth(Long userId, String serialNumber, String authCode);

    /**
     * 取消打印机认证
     * 
     * @param authId 认证ID
     * @return 结果
     */
    public int cancelPrinterAuth(Long authId);

    /**
     * 批量删除打印机认证
     * 
     * @param authIds 需要删除的认证ID列表
     * @return 结果
     */
    public int deletePrinterAuthByAuthIds(Long[] authIds);

    /**
     * 删除打印机认证信息
     * 
     * @param authId 认证ID
     * @return 结果
     */
    public int deletePrinterAuthByAuthId(Long authId);
}